package week2;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 *
 * 811. 子域名访问计数
 * https://leetcode-cn.com/problems/subdomain-visit-count/
 *
 * 执行结果：  通过  显示详情
 *
 * 添加备注
 * 执行用时：39 ms, 在所有 Java 提交中击败了5.76% 的用户
 * 内存消耗：40.6 MB, 在所有 Java 提交中击败了20.30% 的用户
 * 通过测试用例：52 / 52
 * 炫耀一下:
 *
 *
 */
public class Week2SubdomainVisitCount {

    public List<String> subdomainVisits(String[] cpdomains) {
        Map<String, Integer> countMap = new HashMap<String, Integer>();
        for(String domain : cpdomains) {
            String[] info = domain.split("\\s+");
            String[] frags = info[1].split("\\.");
            int count = Integer.valueOf(info[0]);
            String current = "";
            for(int size = frags.length - 1; size >= 0; size--) {
                current = frags[size] + (size < frags.length - 1 ? "." : "") + current;
                countMap.put(current, countMap.getOrDefault(current, 0) + count);
            }
        }

        List<String> resultList = new ArrayList<String>();
        for(String domain : countMap.keySet()) {
            resultList.add("" + countMap.get(domain) + " " + domain);
        }

        return resultList;
    }
}
